// axios.js 
import axios from 'axios'
// 引用element提示框
import {
    Message
} from 'element-ui'
// 引用状态管理
// import { useManageStore } from './stores/manager';
// const store = useManageStore()
// 创建axios
const request = axios.create({
    baseURL: '/api',  // 解决跨域问题对应的baseUrl 
    timeout: 30 * 1000,// 设置超时时间

})

// 添加请求拦截器
request.interceptors.request.use(function (config) {
    // 获取到token
    // const token = store.token
    // if (token) {
    //     // 将token 放在请求头中
    //     config.headers["token"] = token
    // }
    // 在发送请求之前做些什么
    // console.info("config === ",config)
    return config;
}, function (error) {
    // 对请求错误做些什么
    // console.info("error22 === ",error)
    return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
    // console.info("response === ",response)
    // 2xx 范围内的状态码都会触发该函数。
    const code = response.data.code || 200;
    // 返回数据存入变量
    let data = response.data.data
    if (code == 200) {
        // 对响应数据返回 我这里没处理
    } else if(code == 401){
        Message({
            message: "认证失败，无法访问系统资源",
            type: 'error',
            duration: 5 * 1000
        })
    } else if(code == 403){
        Message({
            message: "当前操作没有权限",
            type: 'error',
            duration: 5 * 1000
        })
    } else if(code == 404){
        Message({
            message: "访问资源不存在",
            type: 'error',
            duration: 5 * 1000
        })
    } else {
        // 只要不符合上面的字段  自动返回这个
        Message({
            message: "系统未知错误，请反馈给管理员",
            type: 'error',
            duration: 5 * 1000
        })
    }
    return data;
}, function (error) {
    // console.info("error === ",error)
    // 对响应错误做点什么
    // 统一做了错误请求的处理
    let {
        message//根据后端返回的字段做调整   一般都是message  或者  mes
    } = error;
    if (message == "Network Error") {
        message = "后端接口连接异常";
    } else if (message.includes("timeout")) {
        message = "系统接口请求超时";
    } else if (message.includes("Request failed with status code")) {
        message = "系统接口" + message.substr(message.length - 3) + "异常";
    }
    // 显示弹窗信息
    Message({
        message: message,
        type: 'error',
        duration: 5 * 1000
    })
    return Promise.reject(error);
});
export default request